package com.example.network.service;

import com.example.network.controller.dto.LoginDTO;
import com.example.network.controller.request.LoginRequest;
import com.example.network.controller.request.PassRequest;
import com.example.network.controller.request.UserDataRequest;
import com.example.network.model.entity.User;
import com.example.network.model.entity.UserData;
import org.springframework.core.io.InputStreamResource;
import org.springframework.http.ResponseEntity;
import org.springframework.web.multipart.MultipartFile;

/**
 * @author LR
 */
public interface UserService {

    /**
     * 新增数据
     */
    Boolean insert(User user);
    /**
     * 修改数据
     */
    Boolean updateByUsername(PassRequest request);

    /**
     * 通过主键删除数据
     */
    Boolean DeleteByUserEmail(String username);

    /**
     * 用户登录
     *
     * @param request
     * @return
     */
    LoginDTO login(LoginRequest request);

//    /**
//     * 通过id查询数据
//     * @param user
//     */
//    User getById(Integer id);

    /**
     * 通过email查询数据
     * @param email
     * @return
     */
    User getByEmail(String email);

    // 修改用户资料
    void modifyData(UserDataRequest userData);

    // 将服务器的用户头像地址保存到服务器
    void setAvatars(MultipartFile file, String username);

    // 按Email查看用户信息
    UserData getUserData(String email);

    ResponseEntity<InputStreamResource> getImage(String email);
}
